package com.bnz.controller;

import com.bnz.entity.group.Cart;
import com.bnz.service.CartService;
import org.jasig.cas.client.util.AbstractCasFilter;
import org.jasig.cas.client.validation.Assertion;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * 都是用来表示Spring某个类的是否可以接收HTTP请求
 * @Controller: 标识一个Spring类是Spring MVC controller处理器

 *  @RestController： @RestController是@Controller和@ResponseBody的结合体，两个标注合并起来的作用。
 */
@Controller
@RequestMapping("cart")
public class CartController {

    @Autowired
    private CartService cartService;

    // 1、商品添加到购物车(需要传参数)
    @GetMapping("addCart")
    // sellerId:sku商品id  num:购买的商品数量  model:存放查出数据的列表  session
    public String cart(String sellerId, int num, Model model, HttpSession session){
        // 1.1、得到登录用户的名称
        Assertion assertion = (Assertion) session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
        // 1.2、判断获取的session是否为空
        if (assertion != null){
            String name = assertion.getPrincipal().getName();
            model.addAttribute("name",name);
            // 1.3、查询出购物车列表(放入sku商品id和购买的商品数量)
            List<Cart> carts = cartService.addCart(name,sellerId,num);
            // 1.4、将拿到的购物车列表，放进model
            model.addAttribute("cartList",carts);
        }
        // 返回购物车展示页面(resources/templates/cart)
        return "cart";
    }

}
